package com.mzz.behavior.classandclass.chain;

/**
 *
 * @author xushijian
 * @date 18/5/15 上午8:43
 */
public abstract class Handler {

    /**
     * 持有后继的责任对象
     */
    protected Handler successor;

    /**
     * 示意处理请求的方法
     * <p>
     * 虽然这个示意方法没有传入参数，
     * <p>
     * 但实际是可以传入参数的
     * <p>
     * 根据具体的需要来选择是否传入参数
     */
    public abstract void handleRequest();

    /**
     * 获取责任对象
     *
     * @return 责任对象
     */
    public Handler getSuccessor() {
        return successor;
    }

    /**
     * 设置责任对象
     *
     * @param successor 责任对象
     */
    public void setSuccessor(Handler successor) {
        this.successor = successor;
    }
}
